Em C++, a comunicação é um fluxo, não um evento de armazenamento estático. A iostream biblioteca utiliza uma hierarquia polimórfica onde classes especializadas como ifstream (arquivos) e istringstream (memória) herdam de istream. Isso permite Herança de Fluxos: funções projetadas para um fluxo-base podem processar dados de qualquer fonte de forma transparente.
A Restrição de Não-Copiabilidade
Fluxos representam conexões únicas e com estado ao hardware. Para evitar que múltiplos objetos lutem pelo mesmo ponteiro de arquivo ou buffer de console, os objetos de E/S não podem ser copiados ou atribuídos. Tentar código como ofstream out1, out2; out1 = out2; resulta em um erro do compilador. Consequentemente, objetos de E/S devem ser passados por referência não constante.
O Ponto de Ligação Sequencial
Enquanto fluxos fornecem a interface, contêineres sequenciais (vector, list) fornecem a memória. Os dados enviados são normalmente estruturados nesses contêineres, escolhendo vector para velocidade ou list para inserções flexíveis.